@@ -237,5 +237,20 @@ class ScenarioImport |
||
| 237 | 237 |
yield 'propagate_immediately', propagate_immediately, boolean if self['propagate_immediately'].present? && propagate_immediately.requires_merge? |
| 238 | 238 |
yield 'disabled', disabled, boolean if disabled.requires_merge? |
| 239 | 239 |
end |
| 240 |
+ |
|
| 241 |
+ # Unfortunately Ruby 1.9's OpenStruct doesn't expose [] and []=. |
|
| 242 |
+ unless instance_methods.include?(:[]=) |
|
| 243 |
+ def [](key) |
|
| 244 |
+ self.send(sanitize key) |
|
| 245 |
+ end |
|
| 246 |
+ |
|
| 247 |
+ def []=(key, val) |
|
| 248 |
+ self.send("#{sanitize key}=", val)
|
|
| 249 |
+ end |
|
| 250 |
+ |
|
| 251 |
+ def sanitize(key) |
|
| 252 |
+ key.gsub(/[^a-zA-Z0-9_-]/, '') |
|
| 253 |
+ end |
|
| 254 |
+ end |
|
| 240 | 255 |
end |
| 241 | 256 |
end |